/*! \file Vector3.inl
 *	\brief
 *
 *	created:	2009/11/17
 *	created:	17:11:2009   12:34
 *	filename: 	o:\main\libs\math\Vector3.inl
 *	file path:	o:\main\libs\math
 *	file base:	Vector3
 *	file ext:	inl
 *	author:		Vitalii Trubchaninov
 *				venngraydog@gmail.com
 */

namespace tt{
namespace math{

template<typename T>
Vector3<T>::Vector3(void)
: x(0)
, y(0)
, z(0)
{
}


template<typename T>
Vector3<T>::Vector3( Value _x, Value _y, Value _z )
: x(_x)
, y(_y)
, z(_z)
{

}

template<typename T>
Vector3<T>::~Vector3(void)
{
}

template<typename T>
Vector3<T> Vector3<T>::operator+( const Vector3& value )
{
	Vector3 result(*this);
	result += value;
	return result;
}

template<typename T>
Vector3<T> Vector3<T>::operator-( const Vector3& value )
{
	Vector3 result(*this);
	result -= value;
	return result;
}

template<typename T>
Vector3<T>& Vector3<T>::operator+=( const Vector3& value )
{
	x += value.x;
	y += value.y;
	z += value.z;
	return *this;
}

template<typename T>
Vector3<T>& Vector3<T>::operator-=( const Vector3& value)
{
	x -= value.x;
	y -= value.y;
	z -= value.z;
	return *this;
}

} //namespace math
} //namespace tt
